package 剑指offer;/*
 *@Author: helen
 *@Date:   2021/4/26 16:40
 *@Description:
  题目：
       在一个二维数组中，每一行都按照从左到右的递增顺序排序，每一列都按照从上到下递增的顺序排序，
       请写一个函数：给定一个数，判断该数组是否含有该数，有的话输出他的其中一个位置。
 */

public class 二维数组中的查找 {
    public String Find(int arr[][], int target){
        if(arr == null)
            return "不存在该数";
        int rows = arr.length - 1;
        int columns = arr[0].length - 1;
        int temp;
        int row = 0;
        while (row <=rows && columns >= 0){
            temp = arr[row][columns];
            if(temp == target)
                return "row:" + row + ",column:" + columns;
            else if(temp > target)
                columns--;
            else {
                row++;
            }
        }
        return "不存在该数";
    }

    public static void main(String[] args) {
        二维数组中的查找 obj = new 二维数组中的查找();
        int[][] arr = {
                {1,2,8,9},
                {2,4,9,12},
                {4,7,10,13},
                {6,8,11,15},
                {8,9,13,17}};
        final String result = obj.Find(arr, 17);
        System.out.println(result);
    }
}
